package org.flint.data.structure.queue;

/**
 * @author flint92
 */
public interface Queue<E> {

    /**
     * 队列大小
     * @return  大小
     */
    int getSize();

    /**
     * 判断队列是否为空
     * @return  bool
     */
    boolean isEmpty();

    /**
     * 入队操作
     * @param e 元素
     */
    void enqueue(E e);

    /**
     * 出队操作
     * @return  E
     */
    E dequeue();

    /**
     * 获取队头元素但不出队
     * @return  E
     */
    E getFront();
}
